export  default {
  namespaced:true,
  state(){
    return {
      cart:uni.getStorageSync('cart')||[]   
    }
  },
  
  mutations:{
    // 将购物车中的数据持久化存储到本地
    saveToStorage(state) {
       uni.setStorageSync('cart', state.cart)
    },
    addGoods(state,goods){
      /**
       * 判断商品在购物车中是否存在，如果存在，就改变数量，如果不存在，直接添加
       */
      let item=state.cart.find(item=>item.goods_id==goods.goods_id)
      console.log(item,22);
      if(item){
        //存在===
        item.goods_count+=1
      }else{
        // 不存在
         state.cart=[...state.cart,goods]
      }
      
      // console.log(state.cart,66);
      console.log(this,9988);
      this.commit('cart/saveToStorage')
      
      // state.cart=[...state.cart,goods]
      // console.log(state.cart,456);
    },
    updateState(state,goods){
      let  findItem=state.cart.find(item=>item.goods_id==goods.goods_id)
      findItem.goods_state=!goods.goods_state
      // 做持久化
       this.commit('cart/saveToStorage')
    },
    updateCount(state,goods){
      let  findItem=state.cart.find(item=>item.goods_id==goods.goods_id)
      findItem.goods_count=goods.goods_count
      // 做持久化
       this.commit('cart/saveToStorage')
    },
    // 实现全选和反选
    changeAllState(state,chk){
      state.cart.forEach(item=>{
        item.goods_state=chk
      })
      // 做持久化
       this.commit('cart/saveToStorage')
    }
  },
  actions:{},
  getters:{
    // 获取所有商品的数量
    total(state){
      console.log(state.cart,555);
      return state.cart.reduce((sum,item)=>sum+item.goods_count,0)
    },
    // 获取所有选中的商品数量
    totalChk(state){
     return  state.cart.filter(item=>item.goods_state).reduce((sum,item)=>sum+item.goods_count,0)
    },
    // 获取所有选中的商品的价格
    sumChk(state){
       return  state.cart.filter(item=>item.goods_state).reduce((sum,item)=>sum+item.goods_count*item.goods_price,0)
    }
  }
}